O presente exercício tem como objetivo testar a aplicação de uma metodologia de planejamento da força de trabalho para a saúde bucal.
Essa é uma metodologia baseada em parâmetros de razão populacional (ex.: 1,5 procedimentos curativos para a população coberta) e utiliza como referência o caderno de critérios e parâmetros para planejamento de serviços no âmbito do SUS (2017).
De acordo com o caderno de critérios e parâmetros temos algumas previsões sobre a necessidade de procedimentos. A imagem abaixo apresenta tais condições
Diante dessas informações, depreende-se que alguns dados são necessários para a modelagem:
Projeções populacionais: nesse caso, utilizaremos as projeções populacionais do IBGE a nível UF, por contarmos com dados até 2030
Cobertura de Estratégia de Saúde da Família Saúde Bucal: nesse caso, os dados foram acessados por meio do e-gestor AB
Para essa metodologia serão necessários dados de população e da cobertura de estratégia de saúde - saúde bucal.
df_sb <- sqlQuery(channel, 'SELECT * FROM "Analytics Layer".Territorial."População IBGE por estado e faixa etária selecionada"')
df_cobertura <- read_delim("coberturasb_go.csv",
";", escape_double = FALSE, trim_ws = TRUE)
DT::datatable(df_cobertura)
Vamos utilizar o parâmetro de 24%. Porém, esse é um valor que deverá ser parametrizado no sistema.
Para fins de prototipação, vamos pegar só dados de Goiás
a <- df_sb %>%
filter(uf == 'GO') %>%
filter(ano > 2019) %>%
ggplot(aes(x = ano, y = TOTAL, col = FAIXA_ETARIA)) + geom_line(size = 1) +
scale_x_continuous(breaks = seq(2020, 2030, 3)) + theme_minimal()
plotly::ggplotly(a)
A cobertura foi estabelecida em 0.24 (24%) visto que, multiplicando-se a taxa de cobertura da eSFSB e o SB2010 (48%), tivemos esse valor aproximado nos últimos cinco anos. No entanto, como dito anteriormente, essa cobertura pode ser ajustada.
df_sb0_14 <-
df_sb %>%
filter(uf == 'GO') %>%
filter(FAIXA_ETARIA == "0 a 14") %>%
mutate(cobertura = TOTAL * 0.24) %>%
mutate(proced_curativos = 1.5 * cobertura,
cobertura_endodontia = 0.08 * cobertura,
proced_endodontia = 0.1 * cobertura_endodontia) %>%
filter(ano > 2019)
DT::datatable(df_sb0_14 %>% select(-starts_with("cobertura")))
b <- df_sb0_14 %>%
select(-uf, -FAIXA_ETARIA, -cobertura, -TOTAL, -cobertura_endodontia) %>%
pivot_longer(
cols = starts_with("proced"),
names_to = "procedimento",
values_to = "total",
) %>%
ggplot(aes(x = ano, y = total, col = procedimento)) + geom_line() +
facet_wrap(~procedimento, scales = "free_y") + scale_x_continuous(breaks = seq(2020, 2030, 3)) +
theme_minimal()
plotly::ggplotly(b)
df_sb15_29 <-
df_sb %>%
filter(uf == 'GO') %>%
filter(FAIXA_ETARIA == "15 a 29") %>%
mutate(cobertura = TOTAL * 0.24) %>%
mutate(proced_curativos = 2.6 * cobertura,
cobertura_periodontia = 0.101 * cobertura,
proced_periodontia = 0.10 * cobertura_periodontia,
cobertura_cirurgia = 0.099 * cobertura,
proced_cirurgia = 0.20 * cobertura_cirurgia,
cobertura_endodontia = 0.1 * cobertura,
proced_endodontia = 0.1 * cobertura_endodontia,
cobertura_protese = 0.137 * cobertura,
proced_protese = 0.027 * cobertura_protese) %>%
filter(ano > 2019)
DT::datatable(df_sb15_29 %>% select(-starts_with("cobertura")))
c <- df_sb15_29 %>%
select(-uf, -FAIXA_ETARIA, -cobertura, -TOTAL, -cobertura_endodontia) %>%
pivot_longer(
cols = starts_with("proced"),
names_to = "procedimento",
values_to = "total",
) %>%
ggplot(aes(x = ano, y = total, col = procedimento)) + geom_line() +
theme_minimal() + facet_wrap(~procedimento, scales = "free_y") +
scale_x_continuous(breaks = seq(2020, 2030, 3))
plotly::ggplotly(c)
df_sb30_59 <-
df_sb %>%
filter(uf == 'GO') %>%
filter(FAIXA_ETARIA == "30 a 59") %>%
mutate(cobertura = TOTAL * 0.24) %>%
mutate(proced_curativos = 4.1 * cobertura,
cobertura_periodontia = 0.179 * cobertura,
proced_periodontia = 0.12 * cobertura_periodontia,
cobertura_cirurgia = 0.164 * cobertura,
proced_cirurgia = 0.32 * cobertura_cirurgia,
cobertura_endodontia = 0.10 * cobertura,
proced_endodontia = 0.11 * cobertura_endodontia,
cobertura_protese = 0.687 * cobertura,
proced_protese = 0.138 * cobertura_protese) %>%
filter(ano > 2019)
DT::datatable(df_sb30_59 %>% select(-starts_with("cobertura")))
d <- df_sb30_59 %>%
select(-uf, -FAIXA_ETARIA, -cobertura, -TOTAL, -cobertura_endodontia) %>%
pivot_longer(
cols = starts_with("proced"),
names_to = "procedimento",
values_to = "total",
) %>%
ggplot(aes(x = ano, y = total, col = procedimento)) + geom_line() +
theme_minimal() + facet_wrap(~procedimento, scales = "free_y") +
scale_x_continuous(breaks = seq(2020, 2030, 3))
plotly::ggplotly(d)
df_sb60 <-
df_sb %>%
filter(uf == 'GO') %>%
filter(FAIXA_ETARIA == "30 a 59") %>%
mutate(cobertura = TOTAL * 0.24) %>%
mutate(proced_curativos = 1.64 * cobertura,
cobertura_periodontia = 0.039 * cobertura,
proced_periodontia = 0.04 * cobertura_periodontia,
cobertura_cirurgia = 0.107 * cobertura,
proced_cirurgia = 0.23 * cobertura_cirurgia,
cobertura_protese = 0.927 * cobertura,
proced_protese = 0.185 * cobertura_protese) %>%
filter(ano > 2019)
DT::datatable(df_sb60 %>% select(-starts_with("cobertura")))
e <- df_sb60 %>%
select(-uf, -FAIXA_ETARIA, -cobertura, -TOTAL) %>%
pivot_longer(
cols = starts_with("proced"),
names_to = "procedimento",
values_to = "total",
) %>%
ggplot(aes(x = ano, y = total, col = procedimento)) + geom_line() +
theme_minimal() + facet_wrap(~procedimento, scales = "free_y") +
scale_x_continuous(breaks = seq(2020, 2030, 3))
plotly::ggplotly(e)